/*
 *  Copyright 2013 HCIWriter
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.hci.writer.client.mvp;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;
import com.hci.writer.client.ClientFactory;
import com.hci.writer.client.activity.AdminActivity;
import com.hci.writer.client.activity.GreetingActivity;
import com.hci.writer.client.activity.KeyboardHwActivity;
import com.hci.writer.client.activity.KeyboardSwActivity;
import com.hci.writer.client.activity.SaveActivity;
import com.hci.writer.client.activity.WriteActivity;
import com.hci.writer.client.place.AdminPlace;
import com.hci.writer.client.place.GreetingPlace;
import com.hci.writer.client.place.KeyboardHwPlace;
import com.hci.writer.client.place.KeyboardSwPlace;
import com.hci.writer.client.place.SavePlace;
import com.hci.writer.client.place.WritePlace;

public class MainActivityMapper implements ActivityMapper {
	private ClientFactory clientFactory;

	public MainActivityMapper(ClientFactory clientFactory) {
		super();
		this.clientFactory = clientFactory;
	}
	
	@Override
	public Activity getActivity(Place place) {
		if (place instanceof AdminPlace)
			return new AdminActivity((AdminPlace) place, clientFactory);
		if (place instanceof GreetingPlace)
			return new GreetingActivity((GreetingPlace) place, clientFactory);
		if (place instanceof KeyboardHwPlace)
			return new KeyboardHwActivity((KeyboardHwPlace) place, clientFactory);
		if (place instanceof KeyboardSwPlace)
			return new KeyboardSwActivity((KeyboardSwPlace) place, clientFactory);
		if (place instanceof SavePlace)
			return new SaveActivity((SavePlace) place, clientFactory);
		if (place instanceof WritePlace)
			return new WriteActivity((WritePlace) place, clientFactory);
		return null;
	}

}
